home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / uzumaki / uzumaki.bas next >
BASIC Source File  |  1993-07-08  |  6KB  |  117 lines

  1. 10 ' -----  極方程式で表される曲線   Ver 1.0  -----
  2. 20 ' -----  1993 HADADEN  F-BASIC Ver1.1 L10  -----
  3. 30 Z=10:P=10:F=1:C=4:G=0:ON ERROR GOTO 820
  4. 40 TZ$="                                                               "
  5. 50 '--- MENU -------------------------------------------------------
  6. 60 SCREEN@ 0:PALETTE:COLOR 7,0,7,0:CLS
  7. 70 PRINT"極方程式で表される曲線 Ver 1.0"
  8. 80 PRINT "1993 HADADEN"
  9. 90 PRINT"1:アルキメデスの螺線":PRINT"2:心臓形"
  10. 100 PRINT"3:連珠形"            :PRINT"4:正葉線1"
  11. 110 PRINT"5:正葉線2"          :PRINT"6:正葉線3"
  12. 120 PRINT"7:等角螺線"          :PRINT"8:初期設定":PRINT"9:終了"
  13. 130 INPUT"どれがいいですか(1-9)";AA
  14. 140 CLS:ON AA GOTO 150,160,170,180,190,200,210,970,1090:GOTO 60
  15. 150 PRINT "r=aθ":GOTO 220
  16. 160 PRINT "r=a(1+cosθ)":GOTO 220
  17. 170 PRINT "r^2=a^2*cos2θ":GOTO 220
  18. 180 PRINT "r=a cos 2θ":GOTO 220
  19. 190 PRINT "r=±a sin 2θ":GOTO 220
  20. 200 PRINT "r^2=a^2*cos4θ":GOTO 220
  21. 210 PRINT "r=a^θ"
  22. 220 INPUT"何度(deg)まで";R:IF R<=0 THEN 220 ELSE 230
  23. 230 INPUT"a=";V
  24. 240 PRINT"よろしいですか(Y/N)":YN$=INKEY$
  25. 250 YN$=INKEY$:IF YN$="Y" OR YN$="y" OR YN$="0" THEN 270 ELSE IF YN$="N" OR YN$="n" THEN 220 ELSE 250
  26. 260 '--- グラフ表示 -----------------------------------------------------
  27. 270 CLS:XX=320:YY=240:J=10/10
  28. 280 FOR A=0 TO 640 STEP Z:LINE(A,0)-(A,480),PSET,1:NEXT
  29. 290 FOR B=0 TO 480 STEP Z:LINE(0,B)-(640,B),PSET,1:NEXT
  30. 300 LINE(320,0)-(320,480),PSET,6:LINE(0,240)-(640,240),PSET,6:GOSUB 510
  31. 310 SYMBOL(0,440),"R="+M$+"のグラフ",1,1,6
  32. 320 GA$=STR$(R):SYMBOL(420,440),"求める度数"+GA$+"度",1,1,6
  33. 330 PI=ATN(1)*4:RE=0:PSET(XX+Z*COS(RD)*RE/J,YY-Z*SIN(RD)*RE),C
  34. 340 FOR A=F TO R STEP F:RD=(A/180*PI):GOSUB 510
  35. 350 LINE -(XX+Z*COS(RD)*RE/J,YY-Z*SIN(RD)*RE),PSET,C
  36. 360 IF G=0 THEN 370 ELSE IF G=1 THEN 400
  37. 370 LOCATE 0,1:PRINT USING"r:###.##";V*RE
  38. 380 LOCATE 0,2:PRINT USING"deg:####.##";A
  39. 390 LOCATE 0,3:PRINT USING"rad(PI):##.##";A/180
  40. 400 IF INKEY$=" " THEN LINE(XX,YY)-(XX+Z*COS(RD)*RE/J,YY-Z*SIN(RD)*RE),XOR,2:FOR B=0 TO 1:IF INKEY$=" " THEN B=1:LINE(XX,YY)-(XX+Z*COS(RD)*RE/J,YY-Z*SIN(RD)*RE),XOR,2:NEXT ELSE B=0:NEXT
  41. 410 IF U<>0 THEN 420 ELSE 440
  42. 420 IF A MOD U=0 THEN 430
  43. 430 LINE(XX,YY)-(XX+Z*COS(RD)*RE/J,YY-Z*SIN(RD)*RE),XOR,4
  44. 440 NEXT
  45. 450 LINE(XX,YY)-(XX+Z*COS(RD)*RE/J,YY-Z*SIN(RD)*RE),PSET,5
  46. 460 LOCATE 0,0:PRINT"スペ-ス - 終了 : P - 印刷 : T - グラフ保存"+TZ$
  47. 470 P$=INKEY$:IF P$="" THEN 470
  48. 480 IF P$=" " THEN 60 ELSE IF P$="P" OR P$="p" THEN 590
  49. 490 IF P$="T" OR P$="t" THEN 650 ELSE 460
  50. 500 '--- 計算ル-チン ---------------------------------------------------
  51. 510 IF AA=1 THEN RE=V*RD:M$=STR$(V)+"θ"
  52. 520 IF AA=2 THEN RE=V*(1+COS(RD)):M$=STR$(V)+"(1+cosθ)"
  53. 530 IF AA=3 THEN RE=SQR(V^2*COS(2*RD)):M$="√"+STR$(V)+"^2*COS2θ"
  54. 540 IF AA=4 THEN RE=V*COS(2*RD):M$=STR$(V)+"cos2θ"
  55. 550 IF AA=5 THEN RE=V*SIN(2*RD):M$=STR$(V)+"sin2θ"
  56. 560 IF AA=6 THEN RE=SQR(V^2*COS(4*RD)):M$="√"+STR$(V)+"^2*COS4θ"
  57. 570 IF AA=7 THEN RE=V^RD:M$=STR$(V)+"^θ"
  58. 580 RETURN
  59. 590 '--- 印刷 -----------------------------------------------------------
  60. 600 Q$=INKEY$
  61. 610 LOCATE 0,0:PRINT"印刷しますか(Y/N)"+TZ$
  62. 620 IF Q$="Y" OR Q$="y" THEN 640 ELSE IF Q$="N" OR Q$="n" THEN 460
  63. 630 GOTO 600
  64. 640 LPRINT"":CLS 1:HARDC 2:GOTO 480
  65. 650 '--- グラフ保存 -----------------------------------------------------
  66. 660 LOCATE 0,0:INPUT"ドライブ名を決めてください            ";TA$
  67. 670 LOCATE 0,0:INPUT"ファイル名を入力して下さい(拡張子無し)";TB$
  68. 680 Q$=INKEY$
  69. 690 LOCATE 0,0:PRINT"圧縮ファイルにしますか(Y/N)"+TZ$
  70. 700 IF Q$="Y" OR Q$="y" THEN TC=1:GOTO 720
  71. 710 IF Q$="N" OR Q$="n" THEN TC=0:GOTO 720 ELSE 680
  72. 720 Q$=INKEY$:LOCATE 0,0:PRINT"これでいいですか(Y/N)"+TZ$
  73. 730 IF Q$="Y" OR Q$="y" THEN 750 ELSE IF Q$="N" OR Q$="n" THEN 460
  74. 740 GOTO 720
  75. 750 LOCATE 0,0:PRINT TZ$
  76. 760 IF TC=0 THEN SAVE@ TA$+":"+TB$+".TIF",(0,0)-(639,479),1:GOTO 460
  77. 770 SAVE@ TA$+":"+TB$+".TIF",(0,0)-(639,479),1,TC:GOTO 460
  78. 780 Q$=INKEY$:LOCATE 0,0:PRINT"ファイルを上書きしていいですか(Y/N)          "
  79. 790 IF Q$="Y" OR Q$="y" THEN 810 ELSE IF Q$="N" OR Q$="n" THEN RESUME 660
  80. 800 GOTO 780
  81. 810 KILL TA$+":"+TB$+".TIF":GOTO 750
  82. 820 '--- エラ-処理 -----------------------------------------------------
  83. 825 ER$="   PUSH SPACE KEY"
  84. 830 IF ERR=5 THEN RE=0:RESUME NEXT
  85. 840 BEEP:IF ERR=2 THEN LOCATE 0,0:PRINT"現バ-ジョンのBASICでは使えません"
  86. 850 IF ERR=6 THEN COLOR 6:PRINT"数値が大きすぎます":COLOR 7:RESUME 220
  87. 860 IF ERR=7 THEN LOCATE 0,0:PRINT"メモリ不足です"+ER$
  88. 870 IF ERR=28 THEN LOCATE 0,0:PRINT"HARDCOPYのシステムを組み込んで下さい"+ER$
  89. 880 IF ERR=53 THEN LOCATE 0,0:PRINT"プリンターを確認して下さい"+ER$
  90. 890 IF ERR=60 THEN LOCATE 0,0:PRINT"指定の入出力装置は使用できません"+ER$
  91. 900 IF ERR=64 THEN 780
  92. 910 IF ERR=67 THEN LOCATE 0,0:PRINT"ディスクの容量が足りません"+ER$
  93. 920 IF ERR=72 OR ERR=75 THEN LOCATE 0,0:PRINT"指定されたドライブにディスクを入れて下さい"+ER$:IF INKEY$=" " THEN RESUME 750 ELSE 920
  94. 925 IF ERR=73 THEN LOCATE 0,0:PRINT"指定されたディスクは書き込みが禁止されてます"+ER$
  95. 940 IF INKEY$=" " THEN RESUME 460 ELSE 940
  96. 960 '--- 初期設定 -------------------------------------------------------
  97. 970 CLS:PRINT"初期設定"
  98. 980 A$="1、格子の大きさ          ":B$="2、目盛り幅            ":C$="3、度数の間隔             ":D$="4、線の色(0-7)          ":E$="5、度数表示(Yes - 0 : No - 1)"
  99. 990  LOCATE 6,4:PRINT A$;Z:LOCATE 6,6:PRINT B$;P
  100. 1000  LOCATE 6,8:PRINT C$;F:LOCATE 6,10:PRINT D$;C:LOCATE 6,12:PRINT E$;G
  101. 1010 LOCATE 6,23:INPUT"どれを変更しますか(終了は6)";SS
  102. 1020 ON SS GOSUB 1030,1040,1050,1060,1070,1080:GOTO 970
  103. 1030 LOCATE 40, 4:INPUT "";Z:CLS:RETURN
  104. 1040 LOCATE 40, 6:INPUT "";P:CLS:RETURN
  105. 1050 LOCATE 40, 8:INPUT "";F:CLS:RETURN
  106. 1060 LOCATE 40,10:INPUT "";C:IF C=>0 AND C<=7 THEN CLS:RETURN ELSE 1060
  107. 1070 LOCATE 40,12:INPUT "";G:IF G=>2 THEN 1070 ELSE CLS:RETURN
  108. 1080 CLS:GOTO 60
  109. 1090 '--- 終了 -----------------------------------------------------------
  110. 1100 CLS:PRINT"1,TOWNS-MENU":PRINT"2,BASIC"
  111. 1110 INPUT"どこに戻りますか";E
  112. 1120 ON E GOTO 1130,1140:GOTO 1110
  113. 1130 SYSTEM
  114. 1140 END
  115. 1150 BEEP:IF ERR=2 THEN LOCATE 0,0:PRINT"現バ-ジョンのBASICでは使えません"
  116. 1160 IF AA=4 THEN RE=V*COS(2*RD):M$=STR$(V)+"cos2θ"
  117.